//1.fs.stat  检测是文件还是目录
const fs = require('fs')
fs.stat('html' , (error, stats) =>{
    if (error){
        console .log(error)
    } else {
        // console .log(stats)
        console .log(`文件： ${stats.isFile()}` )
        console .log(`目录： ${stats.isDirectory()}` )
    }
})
//2. fs.mkdir 创建目录
// fs.mkdir('logs' , (error) => {
//     if (error){
//         console .log(error)
//     } else {
//         console .log('成功创建目录：logs' )
//     }
// })
// //3. fs.writeFile 创建写入文件
// fs.writeFile('index.txt' , '您好 ~ \n', (error) => {
//     if (error) {
//         console .log(error)
//     } else {
//         console .log('成功写入文件' )
//     }
// })
//遍历目录
fs.readdir('../FS',function (err,files) {
    if (err) {
        console.log(err)
    }else {

        // for (var i=0; i<files.length; i++) {
        //     fs.stat(files[i],function (error,stats) {//循环判断是目录还是文件
        //         console.log(i)
        //     })
        // } //这种写法有问题，异步打印外部变量会相同
        (function getFile(i) {

            if (i == files.length) {
                return false
            }
            fs.stat(files[i],function (error,stats) {//循环判断是目录还是文件
                // console.log(i)

                //递归调用
                getFile(i+1)
            })
        })(0)
    }
})
//读取文件流
var readStream = fs.createReadStream('input.txt')

var str = ''
var count = 0 /*读取次数*/
readStream.on('data',function (chunk) {
    count++
    str += chunk
})
//读取完成
readStream.on('end',function (chunk) {

    var writeStream = fs.createWriteStream('index.txt')
    console.log(str)
    // writeStream.write(str,'utf8')
//标记写入完成
    writeStream.end()

    writeStream.on('finish',function () {
        console.log('写入完成')
    })
//失败
    writeStream.on('error',function () {
        console.log('写入失败')
    })
    console.log(count)
})
//读取失败
readStream.on('error',function (err) {
    console.log(err)
})
